package com.cy.pj.common.web;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalTime;

/**
 * 定义spring web 模块的拦截器，通过次拦截器
 * 对handler中某些方法进行时间访问限制
 */
@Slf4j//自动生成log对象
public class TimeAccessInterceptor implements HandlerInterceptor {
    /**
     * 在目标handler方法执行前进行访问拦截
     * @param request
     * @param response
     * @param handler
     * @return trun为放行 false表示请求到此结束，不再执行后续handler内方法
     */

    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler){
        LocalTime now=LocalTime.now();//JDK8中的时间对象，获取当前时间
        int hour=now.getHour();//获取小时
        log.info(("Hour {}"), hour);
        if(hour<=6||hour>=22)
            throw new RuntimeException("请在6—22点进行访问");
        return true;
    }
}
